Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>MagLev (software)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/MagLev_(software)"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-MagLev_software rootpage-MagLev_software skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">MagLev (software)</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1248332772">
/* start https://en.wikipedia.org/ */


.mw-parser-output .multiple-issues-text{width:95%;margin:0.2em 0}.mw-parser-output .multiple-issues-text>.mw-collapsible-content{margin-top:0.3em}.mw-parser-output .compact-ambox .ambox{border:none;border-collapse:collapse;background-color:transparent;margin:0 0 0 1.6em!important;padding:0!important;width:auto;display:block}body.mediawiki .mw-parser-output .compact-ambox .ambox.mbox-small-left{font-size:100%;width:auto;margin:0}.mw-parser-output .compact-ambox .ambox .mbox-text{padding:0!important;margin:0!important}.mw-parser-output .compact-ambox .ambox .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:disc}body.skin-minerva .mw-parser-output .multiple-issues-text>.mw-collapsible-toggle,.mw-parser-output .compact-ambox .ambox .mbox-image,.mw-parser-output .compact-ambox .ambox .mbox-imageright,.mw-parser-output .compact-ambox .ambox .mbox-empty-cell,.mw-parser-output .compact-ambox .hide-when-compact{display:none}


/* end https://en.wikipedia.org/ */
</style>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */


.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}


/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above summary">MagLev</th></tr><tr><td colspan="2" class="infobox-image logo"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Programmer" title="Programmer">Developer(s)</a></th><td class="infobox-data"><a href="GemTalk_Systems" class="mw-redirect" title="GemTalk Systems">GemTalk Systems</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Initial release</th><td class="infobox-data">2008<span style="display:none">&nbsp;(<span class="bday dtstart published updated">2008</span>)</span></td></tr><tr style="display: none;"><td colspan="2" class="infobox-full-data"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">1.2.0 Alpha 4
/ May&nbsp;17,&nbsp;2013<span style="display: none;">&nbsp;(<span class="bday dtstart published updated itvstart">2013-05-17</span>)</span></div></td></tr><tr style="display:none"><td colspan="2">
</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Repository_(version_control)" title="Repository (version control)">Repository</a></th><td class="infobox-data"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */


.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}


/* end https://en.wikipedia.org/ */
</style><div class="plainlist"><ul><li><span class="url"><a rel="nofollow" class="external text" href="https://github.com/MagLev/maglev">github<wbr>.com<wbr>/MagLev<wbr>/maglev</a></span> </li></ul>
</div></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Written in</th><td class="infobox-data"><a href="Smalltalk" title="Smalltalk">Smalltalk</a>, <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Operating_system" title="Operating system">Operating system</a></th><td class="infobox-data"><a href="Cross-platform" class="mw-redirect" title="Cross-platform">Cross-platform</a>: <a href="Solaris_(operating_system)" class="mw-redirect" title="Solaris (operating system)">Solaris</a>, <a href="AIX" class="mw-redirect" title="AIX">AIX</a>, <a href="Linux" title="Linux">Linux</a>, <a href="Mac_OS_X" class="mw-redirect" title="Mac OS X">Mac OS X</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="Gemstone_(database)" class="mw-redirect" title="Gemstone (database)">GemStone/S</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_categories#Categorization_approaches" title="Software categories">Type</a></th><td class="infobox-data">Ruby programming language interpreter</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="MIT_license" class="mw-redirect" title="MIT license">MIT</a>, <a href="GNU_General_Public_License" title="GNU General Public License">GPL</a>, others<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://maglev.github.io">maglev<wbr>.github<wbr>.io</a></span></td></tr></tbody></table>
<p><b>MagLev</b> is an alternative implementation of the <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a> programming language built on the <a href="Gemstone_(database)" class="mw-redirect" title="Gemstone (database)">GemStone/S</a> virtual machine from <a href="GemTalk_Systems" class="mw-redirect" title="GemTalk Systems">GemTalk Systems</a>. Much of Maglev was set out to be written in Ruby as much as possible, resulting in some collaboration with the Rubinius project. As of the first beta release, the project runs RubyGems 1.3.5 natively, with support for <a href="C_(programming_language)" title="C (programming language)">C</a> and <a href="Smalltalk" title="Smalltalk">Smalltalk</a> extensions. MagLev has a distinct VM architecture that allows it to share code and data between runtimes and execution cycles through a Ruby API.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Architecture">Architecture</h2></div>
<p>Maglev runs inside an image like <a href="Smalltalk" title="Smalltalk">Smalltalk</a>, offering transparent object persistence<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> to Ruby objects and classes. Object persistence is based on <a href="ACID" title="ACID">ACID</a> transactions that allow multiple running instances to see a shared object graph. Maglev uses a process-based <a href="Concurrency_(computer_science)" title="Concurrency (computer science)">concurrency</a> model, mapping Ruby <a href="Thread_(computer_science)" class="mw-redirect" title="Thread (computer science)">threads</a> to Smalltalk Processes<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>, which are <a href="Scheduling_(computing)" title="Scheduling (computing)">scheduled</a> in the <a href="Virtual_machine" title="Virtual machine">VM</a> as <a href="Green_threads" class="mw-redirect" title="Green threads">green threads</a>. Using MagLev should yield performance increases when using Ruby, along with allowing Ruby processes over multiple machines to use the same objects at the same time.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Installation">Installation</h2></div>
<p>MagLev is installed with RVM, using the following code snippets, copied directly from the maglev GitHub project.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<pre>rvm install maglev
rvm use maglev
</pre>
<p>The status can be checked using
</p>
<pre>$ maglev status
</pre>
<div class="mw-heading mw-heading2"><h2 id="Ruby_compatibility">Ruby compatibility</h2></div>
<p>Maglev targets Ruby 1.8.7 and runs a significant number of <a href="RubySpec" title="RubySpec">RubySpec</a>. It supports several C extensions including <a href="Nokogiri_(project)" class="mw-redirect" title="Nokogiri (project)">Nokogiri</a>, JSON and <a href="Bcrypt" title="Bcrypt">bcrypt</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Gemstone/S_resources">Gemstone/S resources</h2></div>
<ul><li><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation cs2"><a rel="nofollow" class="external text" href="http://community.gemstone.com/display/GSS64/GemStoneS+64+bit+3.1.x+Documentation"><i>GemStoneS 64 bit 3.1.x Documentation</i></a>, July 3, 2012<span class="reference-accessdate">, retrieved <span class="nowrap">July 29,</span> 2012</span></cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://raw.githubusercontent.com/MagLev/maglev/master/Licenses/README.txt">"License agreements"</a>. <i>raw.githubusercontent.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-02-21</span></span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.igvita.com/2010/01/15/distributed-ruby-with-the-maglev-vm/">"Distributed Ruby with the MagLev VM - igvita.com"</a>. <i>www.igvita.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">21 February</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="http://community.gemstone.com/download/attachments/6816862/GS64-ProgGuide-3.1.pdf?version=1">"Programming Guide for GemStone/S 64 Bit Version 1"</a> <span class="cs1-format">(PDF)</span>, <i><a href="VMware" title="VMware">VMware</a></i>, July 2012<span class="reference-accessdate">, retrieved <span class="nowrap">July 29,</span> 2012</span></cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.matthiasspringer.de/downloads/BP2012H1_intra-language_collaboration.pdf">"MagLev – Object Persistence with Ruby and Smalltalk"</a> <span class="cs1-format">(PDF)</span>, <i>Bachelor thesis, <a href="Hasso_Plattner_Institute" title="Hasso Plattner Institute">Hasso Plattner Institute</a></i>, July 1, 2013<span class="reference-accessdate">, retrieved <span class="nowrap">February 22,</span> 2014</span></cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFPhoenix2011" class="citation cs2">Phoenix, Evan (October 14, 2011), <a rel="nofollow" class="external text" href="http://www.engineyard.com/blog/2011/ruby-concurrency-and-you/">"Ruby, Concurrency, and You"</a>, <i><a href="Engine_Yard" title="Engine Yard">Engine Yard</a> Blog</i><span class="reference-accessdate">, retrieved <span class="nowrap">July 29,</span> 2012</span></cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.rubyinside.com/maglev-alpha-released-2807.html">"MagLev Alpha Released: A New, Scalable Ruby Implementation"</a>. <i>www.rubyinside.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">21 February</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://maglev.github.io/docs/get_started.html">"Get Started with MagLev"</a>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><cite id="CITEREFFernandez2008" class="citation cs2">Fernandez, Obie (May 30, 2008), <a rel="nofollow" class="external text" href="http://blog.obiefernandez.com/content/2008/05/maglev-is-gemst.html"><i>MagLev is Gemstone/S for Ruby, Huge News</i></a><span class="reference-accessdate">, retrieved <span class="nowrap">July 29,</span> 2012</span></cite></li>
<li><cite id="CITEREFTaft2008" class="citation cs2">Taft, Darryl K. (June 6, 2008), <a rel="nofollow" class="external text" href="https://www.eweek.com/c/a/Application-Development/MagLev-Rocks-the-Ruby-House/">"MagLev Rocks the Ruby House"</a>, <i><a href="EWeek" title="EWeek">eWeek</a></i><span class="reference-accessdate">, retrieved <span class="nowrap">July 29,</span> 2012</span></cite></li>
<li><cite id="CITEREFGrigorik2010" class="citation cs2">Grigorik, Ilya (January 15, 2010), <a rel="nofollow" class="external text" href="http://www.igvita.com/2010/01/15/distributed-ruby-with-the-maglev-vm/"><i>Distributed Ruby with the MagLev VM</i></a><span class="reference-accessdate">, retrieved <span class="nowrap">July 29,</span> 2012</span></cite></li>
<li><cite id="CITEREFSchuster2011" class="citation cs2">Schuster, Werner (November 15, 2011), <a rel="nofollow" class="external text" href="http://www.infoq.com/news/2011/11/ruby-maglev-10">"NoSQL OODB with Smalltalk-based Ruby VM: MagLev 1.0 Released"</a>, <i><a href="InfoQ" title="InfoQ">InfoQ</a></i><span class="reference-accessdate">, retrieved <span class="nowrap">July 29,</span> 2012</span></cite></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Ruby_programming_language604" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="3"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Ruby_programming_language604" style="font-size:114%;margin:0 4em"><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby programming language</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language_implementation" title="Programming language implementation">Implementations</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Active</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Ruby_MRI" title="Ruby MRI">Ruby MRI</a>; <a href="YARV" title="YARV">YARV</a></li>
<li><a href="Mruby" title="Mruby">mruby</a></li>
<li><a href="JRuby" title="JRuby">JRuby</a></li>
<li><a href="RubyMotion" title="RubyMotion">RubyMotion</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Discontinued</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="MacRuby" title="MacRuby">MacRuby</a></li>
<li><a href="IronRuby" title="IronRuby">IronRuby</a></li>
<li>XRuby</li>
<li><a href="HotRuby" title="HotRuby">HotRuby</a></li>

<li><a href="Rubinius" title="Rubinius">Rubinius</a></li></ul>
</div></td></tr></tbody></table><div></div></td><td class="noviewer navbox-image" rowspan="7" style="width:1px;padding:0 0 0 2px"><div><span typeof="mw:File"></span></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Integrated_development_environment" title="Integrated development environment">IDE</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Aptana_Studio" class="mw-redirect" title="Aptana Studio">Aptana Studio</a></li>
<li><a href="Komodo_IDE" title="Komodo IDE">Komodo IDE</a></li>
<li><a href="RubyMine" class="mw-redirect" title="RubyMine">RubyMine</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Applications</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Capistrano_(software)" title="Capistrano (software)">Capistrano</a></li>
<li><a href="Hackety_Hack" title="Hackety Hack">Hackety Hack</a></li>
<li><a href="Interactive_Ruby_Shell" class="mw-redirect" title="Interactive Ruby Shell">Interactive Ruby Shell</a></li>
<li><a href="Pry_(software)" title="Pry (software)">Pry</a></li>
<li><a href="Rake_(software)" title="Rake (software)">Rake</a></li>
<li><a href="Redmine" title="Redmine">Redmine</a></li>
<li><a href="RSpec" title="RSpec">RSpec</a></li>
<li><a href="RubyGems" title="RubyGems">RubyGems</a></li>
<li><a href="Ruby_Version_Manager" title="Ruby Version Manager">RVM</a></li>
<li><a href="Progress_Chef" title="Progress Chef">Chef</a></li>
<li><a href="Puppet_(software)" title="Puppet (software)">Puppet</a></li>
<li><a href="Vagrant_(software)" title="Vagrant (software)">Vagrant</a></li>
<li><a href="Homebrew_(package_manager)" title="Homebrew (package manager)">Homebrew</a></li>
<li><a href="CocoaPods" title="CocoaPods">CocoaPods</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Library_(computing)" title="Library (computing)">Libraries</a> and <a href="Software_framework" title="Software framework">frameworks</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>Adhearsion</li>
<li><a href="ERuby" title="ERuby">eRuby</a> (RHTML)</li>
<li><a href="Merb" title="Merb">Merb</a></li>
<li><a href="Padrino_(web_framework)" title="Padrino (web framework)">Padrino</a></li>
<li><a href="RubyCocoa" title="RubyCocoa">RubyCocoa</a></li>
<li><a href="Ruby_on_Rails" title="Ruby on Rails">Ruby on Rails</a></li>
<li><a href="Shoes_(GUI_toolkit)" class="mw-redirect" title="Shoes (GUI toolkit)">Shoes</a></li>
<li><a href="Sinatra_(software)" title="Sinatra (software)">Sinatra</a></li>
<li><a href="QtRuby" class="mw-redirect" title="QtRuby">QtRuby</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Server_(computing)" title="Server (computing)">Server</a> software</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mod_ruby" title="Mod ruby">mod_ruby</a></li>
<li><a href="Mongrel_(web_server)" title="Mongrel (web server)">Mongrel</a></li>
<li><a href="Phusion_Passenger" title="Phusion Passenger">Phusion Passenger</a> (mod_rails/mod_rack)</li>
<li><a href="Rack_(web_server_interface)" title="Rack (web server interface)">Rack</a></li>
<li><a href="WEBrick" title="WEBrick">WEBrick</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">People</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Yukihiro_Matsumoto" title="Yukihiro Matsumoto">Yukihiro Matsumoto</a></li>
<li><a href="David_Heinemeier_Hansson" title="David Heinemeier Hansson">David Heinemeier Hansson</a></li>
<li><a href="Why_the_lucky_stiff" title="Why the lucky stiff">why the lucky stiff</a></li>
<li><a href="Dave_Thomas_(programmer)" title="Dave Thomas (programmer)">Dave Thomas</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Ruby_Document_format" title="Ruby Document format">Document format</a></li>
<li><i><a href="Why's_(poignant)_Guide_to_Ruby" title="Why's (poignant) Guide to Ruby">why's (poignant) Guide to Ruby</a></i></li>
<li><a href="RGSS" class="mw-redirect" title="RGSS">RGSS</a></li>
<li><a href="Ruby_Central" title="Ruby Central">Ruby Central</a></li>
<li><a href="RubyKaigi" title="RubyKaigi">RubyKaigi</a></li>
<li><a href="RubyForge" title="RubyForge">RubyForge</a></li>
<li><a href="Ruby_License" title="Ruby License">Ruby License</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="3"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> <b>Category</b></li>
<li><span class="noviewer" typeof="mw:File"><span title="Commons page"></span></span> <b><a href="https://commons.wikimedia.org/wiki/Category:Ruby_programming_language" class="extiw external" title="commons:Category:Ruby programming language">Commons</a></b></li></ul>
</div></td></tr></tbody></table></div>
<p><br>
</p>
<style data-mw-deduplicate="TemplateStyles:r1271159938">
/* start https://en.wikipedia.org/ */


.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox-body{font-style:italic}.mw-parser-output .asbox-note{font-size:smaller}.mw-parser-output .asbox .navbar{position:absolute;top:-0.75em;right:1em;display:none}.mw-parser-output :not(p):not(.asbox)+style+.asbox,.mw-parser-output :not(p):not(.asbox)+link+.asbox{margin-top:3em}


/* end https://en.wikipedia.org/ */
</style>
</div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-05-04" href="https://en.wikipedia.org/wiki/?title=MagLev_(software)&amp;oldid=1288751576">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>